import request from "@/utils/request";
import { ResponseData } from "@/types/global";

const BASE_URL = "/platform/activity";

const ActivityAPI = {
  /**
   *
   * @param 分页
   */
  page(data: SysMerchantActivityQuery) {
    return request<any, ResponseData<SysMerchantActivityVo>>({
      url: `${BASE_URL}/page`,
      method: "post",
      data,
    });
  },
  /**
   * 获取商家-活动详细数据
   * @param data
   */
  getDetailById(data: SysMerchantActivityQuery) {
    return request<any, ResponseData<SysMerchantActivityVo>>({
      url: `${BASE_URL}/getDetailById`,
      method: "post",
      data,
    });
  },
  /**.
   * 审核商家-活动
   * @param data
   */
  audit(data: SysMerchantActivityForm) {
    return request<any, ResponseData<SysMerchantActivityVo>>({
      url: `${BASE_URL}/audit`,
      method: "post",
      data,
    });
  },
  /**
   * 改变商家-活动状态
   * @param data
   */
  changeStat(data: SysMerchantActivityForm) {
    return request<any, ResponseData<SysMerchantActivityVo>>({
      url: `${BASE_URL}/changeStat`,
      method: "post",
      data,
    });
  },
  /**
   * 新增商家-活动
   * @param data
   */
  add(data: SysMerchantActivityForm) {
    return request<any, SysMerchantActivityForm>({
      url: `${BASE_URL}/add`,
      method: "post",
      data,
    });
  },
  /**
   * 删除商家-活动
   * @param data
   */
  deleteById(data: DeleteForm) {
    return request<any, ResponseData<null>>({
      url: `${BASE_URL}/deleteById`,
      method: "post",
      data,
    });
  },
  /**
   * 重新提交商家-活动
   * @param data
   */
  resubmit(data: SysMerchantActivityForm) {
    return request<any, ResponseData<null>>({
      url: `${BASE_URL}/resubmit`,
      method: "post",
      data,
    });
  },
};

export default ActivityAPI;

/**
 * 商户活动查询对象
 */
export interface SysMerchantActivityQuery extends PageQuery {
  /** 主键 ID */
  id?: number;

  /** 名称 */
  name?: string;
  /** 来源 平台端或者商户端 */
  dataType?: string;

  /** 开始时间（ISO 日期时间格式） */
  startTime?: string;

  /** 结束时间（ISO 日期时间格式） */
  endTime?: string;
}

/**
 * 商户活动对象
 */
export interface SysMerchantActivityVo {
  /** 主键 ID */
  id: number;

  /** 名称 */
  name: string;

  /** 副标题 */
  title: string;

  /** 开始时间（ISO 日期时间格式） */
  startTime: string;

  /** 结束时间（ISO 日期时间格式） */
  endTime: string;

  /** 活动图片（多个用逗号分隔） */
  images: string;

  /** 活动状态（1-审核中，2-审核不通过，3-未开始，4-进行中，5-已结束） */
  state: number;

  /** 备注信息 */
  remark: string;

  /** 活动内容 */
  content: string;

  /** 活动审核人（平台端的不需要审核） */
  auditor: number;

  /** 活动审核人信息 */
  auditorInfo: ViewUserVo;

  /** 活动审核时间（ISO 日期时间格式） */
  auditTime: string;

  /** 数据归属终端（1-平台端，2-商户端） */
  dataType: number;

  /** 创建时间（ISO 日期时间格式） */
  createTime: string;

  /** 创建人 ID */
  createBy: string;

  /** 备注信息 */
  msg: string;
}

/**
 * 审核人信息对象
 */
export interface ViewUserVo {
  /** 用户 ID */
  userId: number;

  /** 用户终端 */
  userTerminal: number;

  /** 用户名 */
  username: string;

  /** 昵称 */
  nickname: string;

  /** 标识 ID */
  markId: string;

  /** 头像 */
  avatar: string;

  /** 手机号 */
  mobile: string;
}

/**
 * 商家-活动表单对象
 */
export interface SysMerchantActivityForm {
  /** 主键 ID */
  id: number;

  /** 名称 */
  name?: string;

  /** 副标题 */
  title?: string;

  /** 开始时间（ISO 日期时间格式） */
  startTime?: string;

  /** 结束时间（ISO 日期时间格式） */
  endTime?: string;

  /** 活动图片（多个用逗号分隔） */
  images?: string;

  /** 活动状态（1-审核中，2-审核不通过，3-未开始，4-进行中，5-已结束） */
  state?: number;

  /** 备注信息 */
  remark?: string;

  /** 活动内容 */
  content: string;
}

/**
 * 删除数据表单对象
 */
export interface DeleteForm {
  /** 主键 ID 列表（批量删除） */
  ids?: number[];

  /** 主键 ID（单个删除） */
  id?: number;
}
